package com.snpic.appaw.module.third.api.bjpt.dto.iSPolicyQuery;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * @author JiJun
 * @date 2025/9/19 19:19
 * @修改时间 2025/9/19 19:19
 * @description
 */

@Data
@Schema(description = "保单关系人信息数据传输对象")
public class ISRelatedPartyDTO {

    @Schema(description = "保单号", maxLength = 30)
    private String policyNo;

    @Schema(description = "关系人序号", example = "1")
    private BigDecimal serialNo;

    @Schema(description = "关系人类型 1:个人;2:单位", maxLength = 1)
    private String insuredType;

    @Schema(description = "关系人代码(空值)", maxLength = 20)
    private String insuredCode;

    @Schema(description = "关系人名称", maxLength = 1000)
    private String insuredName;

    @Schema(description = "关系人地址", maxLength = 4000)
    private String insuredAddress;

    @Schema(description = "关系人营业性质", maxLength = 1000)
    private String insuredBusinessSource;

    @Schema(description = "关系人标志1投保人2被保人", maxLength = 1)
    private String insuredFlag;

    @Schema(description = "证件类型", maxLength = 2)
    private String identifyType;

    @Schema(description = "证件号码", maxLength = 60)
    private String identifyNumber;

    @Schema(description = "性别", maxLength = 3)
    private String sex;

    @Schema(description = "出生日期")
    private LocalDateTime birthDate;

    @Schema(description = "邮编", maxLength = 20)
    private String postCode;

    @Schema(description = "办公电话", maxLength = 30)
    private String officePhone;

    @Schema(description = "手机号码", maxLength = 300)
    private String mobilePhone;

    @Schema(description = "家庭电话", maxLength = 20)
    private String homePhone;

    @Schema(description = "联系人", maxLength = 1000)
    private String contactName;

    @Schema(description = "联系人电话", maxLength = 20)
    private String contactPhone;

    @Schema(description = "联系人手机", maxLength = 20)
    private String contactMobile;

    @Schema(description = "婚姻状况", maxLength = 3)
    private String marriageStatus;

    @Schema(description = "学历", maxLength = 3)
    private String educationBackground;

    @Schema(description = "Email", maxLength = 30)
    private String email;

    @Schema(description = "职业工种代码", maxLength = 60)
    private String contactPosition;

    @Schema(description = "职业大类代码", maxLength = 60)
    private String occupationCategory;

    @Schema(description = "身份证有效起期")
    private LocalDateTime certiStartDate;

    @Schema(description = "身份证有效止期")
    private LocalDateTime certiEndDate;

    @Schema(description = "计划代码[详见码表]", maxLength = 4)
    private String planCode;

    @Schema(description = "险种代码[详见码表]", maxLength = 4)
    private String riskCode;

    @Schema(description = "洗钱风险（1-低，2-较低，3-一般，4-较高，5-高）", maxLength = 1)
    private String moneyLaunderingInd;

    @Schema(description = "法定代表人或负责人姓名", maxLength = 20)
    private String lIdentifyName;

    @Schema(description = "法定代表人或负责人证件类型", maxLength = 2)
    private String lIdentifyType;

    @Schema(description = "法定代表人或负责人证件号码", maxLength = 60)
    private String lIdentifyNumber;

    @Schema(description = "法定代表人或负责人证件有效期限")
    private LocalDateTime lIdentifyExpiry;

    @Schema(description = "省份代码")
    private String itemProvinceCode;

    @Schema(description = "城市代码")
    private String itemCityCode;

    @Schema(description = "县区代码")
    private String itemDistrictCode;

    @Schema(description = "手工编辑地址")
    private String damageAddress;

    @Schema(description = "国籍")
    private String country;

    @Schema(description = "手机持有人名称", maxLength = 100)
    private String holderName;

    @Schema(description = "手机持有人证件类型", maxLength = 10)
    private String holderCerType;

    @Schema(description = "手机持有人证件号码", maxLength = 100)
    private String holderCerCode;

    @Schema(description = "团车客户类型", maxLength = 100)
    private String groupCar;

    @Schema(description = "团车客户类型明细", maxLength = 100)
    private String groupCarDetail;

    @Schema(description = "项目名称", maxLength = 100)
    private String projectName;

    @Schema(description = "员工车辆标志", maxLength = 100)
    private String autoLogos;

    @Schema(description = "归属单位", maxLength = 100)
    private String projectUnit;

    @Schema(description = "归属单位证件类型", maxLength = 100)
    private String projectType;

    @Schema(description = "归属单位证件号码", maxLength = 100)
    private String projectNumber;

    @Schema(description = "承诺客户信息状态: 1-真实；0-未知", maxLength = 5)
    private String trueAFalse;

    @Schema(description = "是否私车团购", maxLength = 3)
    private String privateCarGrouponFlag;

    @Schema(description = "团购单位名称", maxLength = 1000)
    private String unitName;

    @Schema(description = "客户等级", maxLength = 10)
    private String customerGrade;

    @Schema(description = "证件有效期限")
    private LocalDateTime identifyExpiry;

    @Schema(description = "证件有效期限是否长期", maxLength = 40)
    private String identifyExpiryLongTime;

    @Schema(description = "资产总额（万元）", example = "1000.0000")
    private BigDecimal totalAssets;

    @Schema(description = "营业收入（万元）", example = "500.0000")
    private BigDecimal operatingIncome;

    @Schema(description = "单位总人数", example = "100")
    private Long employeesNumber;

    @Schema(description = "主营业务", maxLength = 4000)
    private String mainBusiness;

    @Schema(description = "国民经济行业门类", maxLength = 30)
    private String industryCategory;

    @Schema(description = "国民经济行业大类", maxLength = 30)
    private String industrySubCategory;

    @Schema(description = "大客户码", maxLength = 10)
    private String bigCustomerCode;
}